package com.relytosoft.mizar.analyze.face.api.pojo.dto;

import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author lj
 * @date 2022/5/25 11:20
 */
public class AyFaceDispositionDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键", required = true)
    private Integer id;

    @ApiModelProperty(value = "布控任务名称", required = true)
    @NotBlank(message = "未填布控任务名称")
    private String name;

    @ApiModelProperty(value = "布控类型;1：条件（人脸库），2：图片", required = true)
    @NotNull(message = "未选择布控类型")
    private Integer dispositionType;

    @ApiModelProperty(value = "布控范围视频源;多个以英文分号隔开", required = true)
    @NotBlank(message = "未选择布控区域")
    private String dispositionRangeDevice;

    @ApiModelProperty(value = "告警信息第三方接受URL")
    private String receiveUrl;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "布控-图片条件;json字符串")
    private String dispositionImage;

    @ApiModelProperty(value = "布控图片ID")
    private Integer imageId;

    @ApiModelProperty(value = "布控图片地址")
    private String imageUrl;

    @ApiModelProperty(value = "人脸库")
    private String faceGroup;

    @ApiModelProperty(value = "临时人脸库;多个以英文分号隔开")
    private String tempFaceGroup;

    @ApiModelProperty(value = "临时名单生效开始时间")
    private String tempBeginTime;

    @ApiModelProperty(value = "临时名单生效结束时间")
    private String tempEndTime;

    @ApiModelProperty(value = "告警方式;0-未命中告警(白名单) 1-命中告警(黑名单)")
    private Integer alarmType;

    @ApiModelProperty(value = "相似度")
    private String threshold;

    @ApiModelProperty(value = "模板")
    private Integer planTemplateId;

    @ApiModelProperty("创建人ID")
    private int createdId;

    @ApiModelProperty("创建人")
    private String createdBy;

    @ApiModelProperty("更新人ID")
    private int updatedId;

    @ApiModelProperty("更新人")
    private String updatedBy;

    /**
     * 布控状态;0：未开始，1：布控中，2：已结束，3：异常
     */
    @ApiModelProperty(value = "布控状态;0：未开始，1：布控中，2：已结束，3：异常", required = true)
    private Integer status;

    @ApiModelProperty(value = "0：周计划 1：日计划（周一到周日计划相同） 2：全天")
    private Integer planType;

    @ApiModelProperty(value = "取值范围如下： 周计划时：1～7 日计划时：1 全天：0")
    private Integer planInfoNum;

    @ApiModelProperty(value = "(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息")
    private String planInfoList;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getDispositionType() {
        return dispositionType;
    }

    public void setDispositionType(Integer dispositionType) {
        this.dispositionType = dispositionType;
    }

    public String getDispositionRangeDevice() {
        return dispositionRangeDevice;
    }

    public void setDispositionRangeDevice(String dispositionRangeDevice) {
        this.dispositionRangeDevice = dispositionRangeDevice;
    }

    public String getReceiveUrl() {
        return receiveUrl;
    }

    public void setReceiveUrl(String receiveUrl) {
        this.receiveUrl = receiveUrl;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getDispositionImage() {
        return dispositionImage;
    }

    public void setDispositionImage(String dispositionImage) {
        this.dispositionImage = dispositionImage;
    }

    public Integer getImageId() {
        return imageId;
    }

    public void setImageId(Integer imageId) {
        this.imageId = imageId;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public String getFaceGroup() {
        return faceGroup;
    }

    public void setFaceGroup(String faceGroup) {
        this.faceGroup = faceGroup;
    }

    public String getTempFaceGroup() {
        return tempFaceGroup;
    }

    public void setTempFaceGroup(String tempFaceGroup) {
        this.tempFaceGroup = tempFaceGroup;
    }

    public String getTempBeginTime() {
        return tempBeginTime;
    }

    public void setTempBeginTime(String tempBeginTime) {
        this.tempBeginTime = tempBeginTime;
    }

    public String getTempEndTime() {
        return tempEndTime;
    }

    public void setTempEndTime(String tempEndTime) {
        this.tempEndTime = tempEndTime;
    }

    public Integer getAlarmType() {
        return alarmType;
    }

    public void setAlarmType(Integer alarmType) {
        this.alarmType = alarmType;
    }

    public String getThreshold() {
        return threshold;
    }

    public void setThreshold(String threshold) {
        this.threshold = threshold;
    }

    public Integer getPlanTemplateId() {
        return planTemplateId;
    }

    public void setPlanTemplateId(Integer planTemplateId) {
        this.planTemplateId = planTemplateId;
    }

    public int getCreatedId() {
        return createdId;
    }

    public void setCreatedId(int createdId) {
        this.createdId = createdId;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public int getUpdatedId() {
        return updatedId;
    }

    public void setUpdatedId(int updatedId) {
        this.updatedId = updatedId;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getPlanType() {
        return planType;
    }

    public void setPlanType(Integer planType) {
        this.planType = planType;
    }

    public Integer getPlanInfoNum() {
        return planInfoNum;
    }

    public void setPlanInfoNum(Integer planInfoNum) {
        this.planInfoNum = planInfoNum;
    }

    public String getPlanInfoList() {
        return planInfoList;
    }

    public void setPlanInfoList(String planInfoList) {
        this.planInfoList = planInfoList;
    }

    @Override
    public String toString() {
        return "AyFaceDispositionDto{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", dispositionType=" + dispositionType +
                ", dispositionRangeDevice='" + dispositionRangeDevice + '\'' +
                ", receiveUrl='" + receiveUrl + '\'' +
                ", remark='" + remark + '\'' +
                ", dispositionImage='" + dispositionImage + '\'' +
                ", imageId=" + imageId +
                ", imageUrl='" + imageUrl + '\'' +
                ", faceGroup='" + faceGroup + '\'' +
                ", tempFaceGroup='" + tempFaceGroup + '\'' +
                ", tempBeginTime='" + tempBeginTime + '\'' +
                ", tempEndTime='" + tempEndTime + '\'' +
                ", alarmType=" + alarmType +
                ", threshold='" + threshold + '\'' +
                ", planTemplateId=" + planTemplateId +
                ", createdId=" + createdId +
                ", createdBy='" + createdBy + '\'' +
                ", updatedId=" + updatedId +
                ", updatedBy='" + updatedBy + '\'' +
                ", status=" + status +
                ", planType=" + planType +
                ", planInfoNum=" + planInfoNum +
                ", planInfoList='" + planInfoList + '\'' +
                '}';
    }
}
